﻿
#include <stdio.h>
#include <stdlib.h>
int pivotIndex(int* nums, int numsSize)
{
    int left = 0, num = 0, nub = 0;
    int i = 0;
    //计算总数
    for (i = 0; i < numsSize; i++)
    {
        num += nums[i];
    }
    //找中心下标
    for (i = 0; i < numsSize; i++)
    {
        //左边和右边相等，左边*2+中间=总和
        if (nub * 2 + nums[i] == num)
        {
            return i;
        }
        nub += nums[i];
    }
    //找不到返回-1
    return -1;
}

//编写一个函数，计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内(0~127 ，包括 0 和 127)，换行表示结束符，不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
//例如，对于字符串 abaca 而言，有 a、b、c 三种不同的字符，因此输出 3 。
//
//数据范围： 1 \le n \le 500 \1≤n≤500

int main()
{
    char a[500] = { 0 };
    int count = 0;
    while (scanf("%s", a) != EOF)
    {

        char b[127] = { 0 };
        char* p = a;
        while (*p != '\0')
        {
            if (b[*p] != 1)
            {
                count++;
            }
            b[*p] = 1;
            p++;
        }

    }
    printf("%d", count);
    return 0;
}


//
//给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n / 2 ⌋ 的元素。
//
//你可以假设数组是非空的，并且给定的数组总是存在多数元素。
int cmp(const void* a, const void* b)
{
    return *(int*)a - *(int*)b;
}

int majorityElement(int* nums, int numsSize)
{
    //出现次数>n/2,说明排序后中间那个数一定是出现次数最多的数
    qsort(nums, numsSize, sizeof(int), cmp);
    return nums[numsSize / 2];

}